[INFO] cloning repository https://github.com/Skyline10124/LATTICE-Runtime
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Skyline10124/LATTICE-Runtime" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkyline10124%2FLATTICE-Runtime", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkyline10124%2FLATTICE-Runtime'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6f6d13d782a2edbc143198d7d1ad6ae687ae7b78
[INFO] testing Skyline10124/LATTICE-Runtime against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSkyline10124%2FLATTICE-Runtime" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Skyline10124/LATTICE-Runtime
[INFO] finished tweaking git repo https://github.com/Skyline10124/LATTICE-Runtime
[INFO] tweaked toml for git repo https://github.com/Skyline10124/LATTICE-Runtime written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Skyline10124/LATTICE-Runtime on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Skyline10124/LATTICE-Runtime already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5ddcb2f14b2407c475ddee72b08ab0aa1a9d3196a3b87b0a510fa7c55fe943be
[INFO] running `Command { std: "docker" "start" "-a" "5ddcb2f14b2407c475ddee72b08ab0aa1a9d3196a3b87b0a510fa7c55fe943be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5ddcb2f14b2407c475ddee72b08ab0aa1a9d3196a3b87b0a510fa7c55fe943be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5ddcb2f14b2407c475ddee72b08ab0aa1a9d3196a3b87b0a510fa7c55fe943be", kill_on_drop: false }`
[INFO] [stdout] 5ddcb2f14b2407c475ddee72b08ab0aa1a9d3196a3b87b0a510fa7c55fe943be
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eae868e797c0ca03d2db044503d05b960b579d475934175637ba3f52a1824a18
[INFO] running `Command { std: "docker" "start" "-a" "eae868e797c0ca03d2db044503d05b960b579d475934175637ba3f52a1824a18", kill_on_drop: false }`
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling openssl-sys v0.9.115
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling tokio v1.52.2
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling openssl v0.10.79
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling borrow-or-share v0.2.4
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling fluent-uri v0.3.2
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling blake3 v1.8.5
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling uuid-simd v0.8.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling inotify v0.10.2
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling tower-http v0.6.9
[INFO] [stderr]    Compiling notify-types v1.0.1
[INFO] [stderr]    Compiling referencing v0.26.2
[INFO] [stderr]    Compiling fraction v0.15.4
[INFO] [stderr]    Compiling fancy-regex v0.14.0
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling fancy-regex v0.17.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling email_address v0.2.9
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling num-cmp v0.1.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling notify v7.0.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling tiktoken-rs v0.11.0
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling landlock v0.4.4
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling jsonschema v0.26.2
[INFO] [stderr]    Compiling lattice v0.1.0 (/opt/rustwide/workdir/lattice)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 09s
[INFO] running `Command { std: "docker" "inspect" "eae868e797c0ca03d2db044503d05b960b579d475934175637ba3f52a1824a18", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eae868e797c0ca03d2db044503d05b960b579d475934175637ba3f52a1824a18", kill_on_drop: false }`
[INFO] [stdout] eae868e797c0ca03d2db044503d05b960b579d475934175637ba3f52a1824a18
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2d74bc615ad6f36f6fd8f60ce7e8a27303d7521534415db04865eb3429016b98
[INFO] running `Command { std: "docker" "start" "-a" "2d74bc615ad6f36f6fd8f60ce7e8a27303d7521534415db04865eb3429016b98", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling openssl v0.10.79
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling tower-http v0.6.9
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling fluent-uri v0.3.2
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling email_address v0.2.9
[INFO] [stderr]    Compiling referencing v0.26.2
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling fraction v0.15.4
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling jsonschema v0.26.2
[INFO] [stderr]    Compiling lattice v0.1.0 (/opt/rustwide/workdir/lattice)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 56s
[INFO] running `Command { std: "docker" "inspect" "2d74bc615ad6f36f6fd8f60ce7e8a27303d7521534415db04865eb3429016b98", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2d74bc615ad6f36f6fd8f60ce7e8a27303d7521534415db04865eb3429016b98", kill_on_drop: false }`
[INFO] [stdout] 2d74bc615ad6f36f6fd8f60ce7e8a27303d7521534415db04865eb3429016b98
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 08692554c546cf5ce0be07edba7a24ba4476e74290856f9baf7a9b5decb9b6d5
[INFO] running `Command { std: "docker" "start" "-a" "08692554c546cf5ce0be07edba7a24ba4476e74290856f9baf7a9b5decb9b6d5", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.58s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/lattice-ff77c788889df0d4)
[INFO] [stdout] 
[INFO] [stdout] running 470 tests
[INFO] [stdout] test agent::audit::tests::test_behavior_switch_serialization ... ok
[INFO] [stdout] test agent::audit::tests::test_hook_deny_serialization ... ok
[INFO] [stdout] test agent::behavior::tests::test_default_behavior_is_strict ... ok
[INFO] [stdout] test agent::behavior::tests::test_behavior_mode_clone ... ok
[INFO] [stdout] test agent::bus_event_collector::tests::test_drain_empty ... ok
[INFO] [stdout] test agent::behavior::tests::test_yolo_behavior ... ok
[INFO] [stdout] test agent::hook::tests::empty_hook_chain_all_commands_pass ... ok
[INFO] [stdout] test agent::hook::tests::hook_chain_passes_modified_command_through ... ok
[INFO] [stdout] test agent::hook::tests::hook_chain_warning_continues ... ok
[INFO] [stdout] test agent::hook::tests::multiple_hooks_second_sees_modified_command ... ok
[INFO] [stdout] test agent::bus_event_collector::tests::test_push_many ... ok
[INFO] [stdout] test agent::audit::tests::test_audit_log_lazy_open ... ok
[INFO] [stdout] test agent::audit::tests::test_tool_exec_serialization ... ok
[INFO] [stdout] test agent::audit::tests::test_audit_log_write_and_read ... ok
[INFO] [stdout] test agent::bus_event_collector::tests::test_push_and_drain ... ok
[INFO] [stdout] test agent::hook::tests::hook_chain_first_deny_wins ... ok
[INFO] [stdout] test agent::hook::tests::tirith_default_constructs ... ok
[INFO] [stdout] test agent::hook::tests::empty_command_passes_hook_chain ... ok
[INFO] [stdout] test agent::hook::tests::tirith_blocks_chmod_777 ... ok
[INFO] [stdout] test agent::hook::tests::tirith_allows_safe_command ... ok
[INFO] [stdout] test agent::hook::tests::tirith_blocks_curl_pipe_sh ... ok
[INFO] [stdout] test agent::hook::tests::tirith_allows_rm_rf_home_user ... ok
[INFO] [stdout] test agent::hook::tests::tirith_blocks_rm_rf_root_reconfirmed ... ok
[INFO] [stdout] test agent::hook::tests::tirith_empty_command_passes ... ok
[INFO] [stdout] test agent::hook::tests::tirith_name_returns_tirith ... ok
[INFO] [stdout] test agent::hook::tests::tirith_blocks_rm_rf_root ... ok
[INFO] [stdout] test agent::hook::tests::vet_handles_malformed_curl_no_url ... ok
[INFO] [stdout] test agent::hook::tests::vet_name_returns_vet ... ok
[INFO] [stdout] test agent::hook::tests::warning_only_hook_chain_returns_ok ... ok
[INFO] [stdout] test agent::memory::tests::test_can_read_empty_list ... ok
[INFO] [stdout] test agent::memory::tests::test_can_read_named_in_list ... ok
[INFO] [stdout] test agent::memory::tests::test_can_read_named_not_in_list ... ok
[INFO] [stdout] test agent::memory::tests::test_can_read_shared_all ... ok
[INFO] [stdout] test agent::memory::tests::test_can_write_empty_list ... ok
[INFO] [stdout] test agent::memory::tests::test_can_write_named_in_list ... ok
[INFO] [stdout] test agent::memory::tests::test_entries_by_kind_inmemory ... ok
[INFO] [stdout] test agent::memory::tests::test_entries_by_kind_sorts_by_created_at_desc ... ok
[INFO] [stdout] test agent::memory::tests::test_recall_empty ... ok
[INFO] [stdout] test agent::memory::tests::test_recall_sorts_matching_entries_by_created_at_desc ... ok
[INFO] [stdout] test agent::memory::tests::test_save_and_recall_inmemory ... ok
[INFO] [stdout] test agent::message_source::tests::test_default_registry_is_empty ... ok
[INFO] [stdout] test agent::message_source::tests::test_format_for_retrieved_context ... ok
[INFO] [stdout] test agent::message_source::tests::test_format_for_system_and_user_are_passthrough ... ok
[INFO] [stdout] test agent::message_source::tests::test_format_for_tool_output ... ok
[INFO] [stdout] test agent::message_source::tests::test_source_for_layer_mapping ... ok
[INFO] [stdout] test agent::message_source::tests::test_source_registry_default_is_user_input ... ok
[INFO] [stdout] test agent::message_source::tests::test_source_registry_push_and_get ... ok
[INFO] [stdout] test agent::message_source::tests::test_source_registry_trim_front ... ok
[INFO] [stdout] test agent::message_source::tests::test_trim_front_overshoot ... ok
[INFO] [stdout] test agent::message_source::tests::test_trim_front_zero ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::allocate_budgets_dynamic_priority_order ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::allocate_budgets_fixed_deducted_first ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::allocate_budgets_fixed_exhausts_budget ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::allocate_budgets_ratio_after_fixed ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::allocate_budgets_zero_budget ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::budget_overflow_drops_lowest_priority_layer ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::compile_with_system_and_tools_and_input ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::dynamic_sections_dropped_when_no_budget_remains ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::empty_input_still_produces_input_section ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::fixed_budget_reserved_first ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::input_only_renders_as_raw_text ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::multiple_ratio_providers_sequential ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::ratio_above_one_clamped ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::ratio_budget_proportional_allocation ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::ratio_nan_clamped_to_zero ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::ratio_negative_clamped_to_zero ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::ratio_overclaimed_drops_underfunded_sections ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::same_layer_respects_priority ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::system_and_input_produces_two_messages ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::system_prompt_and_system_provider_coexist ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::tiny_budget_only_system_and_input_survive ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::total_tokens_matches_sections_sum ... ok
[INFO] [stdout] test agent::prompt::compiler::tests::zero_effective_budget_drops_all_non_input ... ok
[INFO] [stdout] test agent::prompt::memory_provider::tests::produces_memory_section_from_query ... ok
[INFO] [stdout] test agent::hook::tests::vet_blocks_curl_http_url ... ok
[INFO] [stdout] test agent::prompt::registry::tests::empty_registry_returns_kernel_system_section ... ok
[INFO] [stdout] test agent::prompt::registry::tests::provider_returning_none_is_skipped ... ok
[INFO] [stdout] test agent::prompt::registry::tests::none_provider_skipped_between_real_providers ... ok
[INFO] [stdout] test agent::hook::tests::vet_default_constructs ... ok
[INFO] [stdout] test agent::hook::tests::vet_blocks_curl_http_url_with_options ... ok
[INFO] [stdout] test agent::prompt::registry::tests::set_system_prompt_replaces_previous ... ok
[INFO] [stdout] test agent::prompt::system_stack::tests::kernel_is_always_present ... ok
[INFO] [stdout] test agent::prompt::registry::tests::system_prompt_produces_section_with_fixed_budget ... ok
[INFO] [stdout] test agent::prompt::system_stack::tests::agent_prompt_is_incremental ... ok
[INFO] [stdout] test agent::prompt::system_stack::tests::rejects_untrusted_delta_variables ... ok
[INFO] [stdout] test agent::prompt::template::tests::rejects_missing_variables ... ok
[INFO] [stdout] test agent::prompt::template::tests::rejects_unknown_variables ... ok
[INFO] [stdout] test agent::prompt::template::tests::renders_allowed_variables ... ok
[INFO] [stdout] test agent::state::tests::test_push_system_message_inserts_before_seeded_history ... ok
[INFO] [stdout] test agent::state::tests::test_replace_first_user_message_replaces_in_place ... ok
[INFO] [stdout] test agent::state::tests::test_replace_first_user_message_no_user_falls_back_to_push ... ok
[INFO] [stdout] test agent::state::tests::test_snapshot_restore_recovers_messages_and_usage ... ok
[INFO] [stdout] test agent::state::tests::test_trim_messages_always_keeps_minimum ... ok
[INFO] [stdout] test agent::state::tests::test_trim_messages_noop_if_within_budget ... ok
[INFO] [stdout] test agent::state::tests::test_trim_messages_removes_old_messages ... ok
[INFO] [stdout] test agent::state::tests::test_upsert_user_message_from_preserves_older_user_messages ... ok
[INFO] [stdout] test agent::tests::test_agent_prompt_compilation_integration ... ok
[INFO] [stdout] test agent::tests::test_behavior_getter_returns_ref ... ok
[INFO] [stdout] test agent::tests::test_budget_overflow_drops_low_priority_provider ... ok
[INFO] [stdout] test agent::tests::test_default_behavior_is_strict ... ok
[INFO] [stdout] test agent::tests::test_empty_registry_falls_through_to_raw_input ... ok
[INFO] [stdout] test agent::tests::test_set_behavior_switches_mode ... ok
[INFO] [stdout] test agent::tests::test_set_system_prompt_does_not_panic ... ok
[INFO] [stdout] test agent::tests::test_with_permissive_preserves_custom_strict ... ok
[INFO] [stdout] test agent::tests::test_with_permissive_restores_on_err ... ok
[INFO] [stdout] test agent::tests::test_with_permissive_switches_and_restores_on_ok ... ok
[INFO] [stdout] test bus::handoff_rule::tests::reexported_rules_parse_and_eval ... ok
[INFO] [stdout] test bus::lattice_dir::tests::test_bus_toml_defaults ... ok
[INFO] [stdout] test bus::lattice_dir::tests::test_bus_toml_load_invalid_syntax ... ok
[INFO] [stdout] test bus::lattice_dir::tests::test_bus_toml_to_bus_config ... ok
[INFO] [stdout] test bus::lattice_dir::tests::test_bus_toml_to_bus_config_at_least_once ... ok
[INFO] [stdout] test bus::lattice_dir::tests::test_bus_toml_to_bus_config_unknown_policy ... ok
[INFO] [stdout] test bus::lattice_dir::tests::test_lattice_dir_discover_missing ... ok
[INFO] [stdout] test bus::lattice_dir::tests::test_lattice_dir_discover_with_agents ... ok
[INFO] [stdout] test agent::prompt::registry::tests::registered_provider_appears_in_collect ... ok
[INFO] [stdout] test bus::lattice_dir::tests::test_lattice_dir_discover_with_bus_toml ... ok
[INFO] [stdout] test agent::prompt::system_stack::tests::renders_trusted_delta_variables ... ok
[INFO] [stdout] test bus::lattice_dir::tests::test_bus_toml_custom_values ... ok
[INFO] [stdout] test bus::micro_agent::tests::test_extract_content_empty_events ... ok
[INFO] [stdout] test bus::micro_agent::tests::test_extract_content_no_tokens ... ok
[INFO] [stdout] test bus::micro_agent::tests::test_extract_content_token_events_mixed ... ok
[INFO] [stdout] test bus::micro_agent::tests::test_extract_input_null_payload ... ok
[INFO] [stdout] test bus::micro_agent::tests::test_extract_input_object_without_input_key ... ok
[INFO] [stdout] test bus::micro_agent::tests::test_extract_input_object_with_input_key ... ok
[INFO] [stdout] test bus::micro_agent::tests::test_extract_input_number_payload ... ok
[INFO] [stdout] test agent::hook::tests::vet_blocks_wget_http_url_with_options ... ok
[INFO] [stdout] test bus::micro_agent::tests::test_parse_output_valid_json ... ok
[INFO] [stdout] test bus::micro_agent::tests::test_extract_input_string_payload ... ok
[INFO] [stdout] test bus::pipeline::tests::test_dry_run_fork_invalid_target ... ok
[INFO] [stdout] test agent::hook::tests::vet_passthrough_empty_command ... ok
[INFO] [stdout] test agent::hook::tests::vet_blocks_wget_http_url ... ok
[INFO] [stdout] test bus::micro_agent::tests::test_parse_output_empty_string ... ok
[INFO] [stdout] test bus::micro_agent::tests::test_parse_output_markdown_fenced_json ... ok
[INFO] [stdout] test bus::micro_agent::tests::test_parse_output_non_json_fallback ... ok
[INFO] [stdout] test bus::pipeline::tests::test_dry_run_missing_agent ... ok
[INFO] [stdout] test bus::pipeline::tests::test_dry_run_valid_pipeline ... ok
[INFO] [stdout] test bus::pipeline::tests::test_dry_run_fork_valid ... ok
[INFO] [stdout] test bus::pipeline::tests::test_merge_fork_outputs ... ok
[INFO] [stdout] test bus::profile::tests::test_blake3_corrupted_hash_rejected ... ok
[INFO] [stdout] test bus::profile::tests::test_blake3_first_load_creates_hash ... ok
[INFO] [stdout] test bus::profile::tests::test_blake3_second_load_verifies ... ok
[INFO] [stdout] test bus::profile::tests::test_default_bus_and_memory ... ok
[INFO] [stdout] test bus::profile::tests::test_blake3_tampered_profile_rejected ... ok
[INFO] [stdout] test bus::profile::tests::test_default_behavior ... ok
[INFO] [stdout] test bus::profile::tests::test_default_skippable_and_tags ... ok
[INFO] [stdout] test bus::profile::tests::test_load_profile_from_toml ... ok
[INFO] [stdout] test bus::profile::tests::test_system_prompt_rejects_path_traversal ... ok
[INFO] [stdout] test bus::profile::tests::test_plugins_config_toml_deserialize ... ok
[INFO] [stdout] test bus::profile::tests::test_system_prompt_rejects_absolute_path ... ok
[INFO] [stdout] test bus::runner::tests::does_not_treat_normal_text_as_error ... ok
[INFO] [stdout] test bus::profile::tests::test_bus_and_memory_sections ... ok
[INFO] [stdout] test bus::runner::tests::detects_provider_and_transport_error_text ... ok
[INFO] [stdout] test bus::tests::test_bus_config_defaults ... ok
[INFO] [stdout] test bus::profile::tests::test_handoff_rules_deserialization ... ok
[INFO] [stdout] test bus::tests::test_deregister ... ok
[INFO] [stdout] test bus::tests::test_deregister_nonexistent ... ok
[INFO] [stdout] test bus::tests::test_discover_no_match ... ok
[INFO] [stdout] test bus::tests::test_publish_capability_enforced ... ok
[INFO] [stdout] test bus::tests::test_pub_sub_no_subscribers ... ok
[INFO] [stdout] test bus::tests::test_register_duplicate_rejected ... ok
[INFO] [stdout] test bus::tests::test_registration_yields_request_rx ... ok
[INFO] [stdout] test bus::tests::test_register_and_discover ... ok
[INFO] [stdout] test bus::tests::test_rpc_call_success ... ok
[INFO] [stdout] test bus::tests::test_rpc_target_not_found ... ok
[INFO] [stdout] test bus::tests::test_rpc_timeout ... ok
[INFO] [stdout] test bus::tests::test_subscribe_capability_empty_means_all ... ok
[INFO] [stdout] test bus::tests::test_subscribe_capability_enforced ... ok
[INFO] [stdout] test core::catalog::loader::tests::test_api_protocol_custom_variant ... ok
[INFO] [stdout] test core::catalog::loader::tests::test_api_protocol_from_str ... ok
[INFO] [stdout] test core::catalog::loader::tests::test_catalog_loads ... ok
[INFO] [stdout] test core::catalog::loader::tests::test_get_model_claude_sonnet ... ok
[INFO] [stdout] test core::catalog::loader::tests::test_gpt_oss_120b_has_context_length ... ok
[INFO] [stdout] test core::catalog::loader::tests::test_provider_defaults_anthropic ... ok
[INFO] [stdout] test core::catalog::loader::tests::test_resolve_alias_sonnet ... ok
[INFO] [stdout] test core::catalog::types::tests::test_api_protocol_serde_accepts_short_alias ... ok
[INFO] [stdout] test bus::tests::test_rpc_caller_not_found ... ok
[INFO] [stdout] test bus::tests::test_rpc_unauthorized ... ok
[INFO] [stdout] test core::catalog::types::tests::test_api_protocol_serde_rejects_typo ... ok
[INFO] [stdout] test core::catalog::types::tests::test_debug_hides_api_key ... ok
[INFO] [stdout] test core::catalog::types::tests::test_serialize_hides_api_key ... ok
[INFO] [stdout] test core::catalog::types::tests::test_api_protocol_serde_custom_unknown ... ok
[INFO] [stdout] test core::errors::tests::test_classify_400_rate_limit_error ... ok
[INFO] [stdout] test core::errors::tests::test_classify_authentication_401 ... ok
[INFO] [stdout] test core::errors::tests::test_classify_authentication_403 ... ok
[INFO] [stdout] test core::errors::tests::test_classify_context_window_exceeded ... ok
[INFO] [stdout] test core::errors::tests::test_classify_model_not_found ... ok
[INFO] [stdout] test core::errors::tests::test_classify_model_not_found_no_model_field ... ok
[INFO] [stdout] test bus::pipeline::tests::test_run_async_error_handling ... ok
[INFO] [stdout] test bus::tests::test_bus_handler_function ... ok
[INFO] [stdout] test bus::tests::test_pub_sub_basic ... ok
[INFO] [stdout] test bus::tests::test_bus_handler_macro ... ok
[INFO] [stdout] test core::errors::tests::test_classify_rate_limit_no_retry_after ... ok
[INFO] [stdout] test core::errors::tests::test_classify_rate_limit_with_retry_after ... ok
[INFO] [stdout] test core::errors::tests::test_display_authentication ... ok
[INFO] [stdout] test core::errors::tests::test_display_config ... ok
[INFO] [stdout] test core::errors::tests::test_display_context_window_exceeded ... ok
[INFO] [stdout] test core::errors::tests::test_display_model_not_found ... ok
[INFO] [stdout] test core::errors::tests::test_display_network ... ok
[INFO] [stdout] test core::errors::tests::test_display_provider_unavailable ... ok
[INFO] [stdout] test core::errors::tests::test_display_rate_limit ... ok
[INFO] [stdout] test core::errors::tests::test_display_streaming ... ok
[INFO] [stdout] test core::errors::tests::test_display_tool_execution ... ok
[INFO] [stdout] test core::errors::tests::test_extract_model_from_body ... ok
[INFO] [stdout] test core::errors::tests::test_extract_model_from_body_no_model ... ok
[INFO] [stdout] test core::errors::tests::test_extract_retry_after_json ... ok
[INFO] [stdout] test core::errors::tests::test_extract_retry_after_json_float ... ok
[INFO] [stdout] test core::errors::tests::test_extract_retry_after_not_found ... ok
[INFO] [stdout] test core::errors::tests::test_classify_400_overloaded_error ... ok
[INFO] [stdout] test core::errors::tests::test_classify_provider_unavailable_500 ... ok
[INFO] [stdout] test core::errors::tests::test_classify_network_error_418 ... ok
[INFO] [stdout] test core::errors::tests::test_classify_network_error_unknown_status ... ok
[INFO] [stdout] test core::errors::tests::test_classify_400_no_context_overflow ... ok
[INFO] [stdout] test core::errors::tests::test_classify_provider_unavailable_503 ... ok
[INFO] [stdout] test core::errors::tests::test_scrub_credentials_anthropic_key ... ok
[INFO] [stdout] test core::errors::tests::test_scrub_credentials_preserves_safe_body ... ok
[INFO] [stdout] test core::errors::tests::test_scrub_credentials_openai_key ... ok
[INFO] [stdout] test core::errors::tests::test_scrub_credentials_bearer_token ... ok
[INFO] [stdout] test core::errors::tests::test_scrub_credentials_json_field ... ok
[INFO] [stdout] test agent::hook::tests::vet_passthrough_normal_command ... ok
[INFO] [stdout] test core::invocation::send_streaming_request_tests::test_streaming_error_403_authentication ... ok
[INFO] [stdout] test core::invocation::send_streaming_request_tests::test_streaming_error_418_network ... ok
[INFO] [stdout] test core::invocation::validate_header_tests::test_validate_injected_header_accepts_whitelisted ... ok
[INFO] [stdout] test core::invocation::validate_header_tests::test_validate_injected_header_rejects_sensitive ... ok
[INFO] [stdout] test core::invocation::send_streaming_request_tests::test_streaming_error_401_authentication ... ok
[INFO] [stdout] test core::invocation::validate_header_tests::test_validate_injected_header_rejects_unknown ... ok
[INFO] [stdout] test core::provider::tests::test_chat_request_new ... ok
[INFO] [stdout] test core::resolve_tests::resolve_gpt4o_missing_credential_errors ... ok
[INFO] [stdout] test core::resolve_tests::test_resolve_nonexistent_model ... ok
[INFO] [stdout] test core::resolve_tests::test_resolve_sonnet_alias_missing_credential ... ok
[INFO] [stdout] test core::retry::tests::test_backoff_high_attempt_no_panic ... ok
[INFO] [stdout] test core::resolve_tests::test_resolve_gpt4o_with_key_ok ... ok
[INFO] [stdout] test core::retry::tests::test_backoff_increases_median ... ok
[INFO] [stdout] test core::router::tests::test_credentialed_provider_wins_over_credentialless_at_same_priority ... ok
[INFO] [stdout] test core::resolve_tests::test_resolve_sonnet_alias_with_credential ... ok
[INFO] [stdout] test core::invocation::send_streaming_request_tests::test_streaming_error_404_model_not_found ... ok
[INFO] [stdout] test core::router::tests::test_credentialless_provider_wins_over_lower_priority_credentialed ... ok
[INFO] [stdout] test core::router::tests::test_inspect_model_allows_empty_base_url ... ok
[INFO] [stdout] test core::router::tests::test_inspect_model_returns_missing_credential ... ok
[INFO] [stdout] test core::router::tests::test_is_private_or_reserved_ipv4 ... ok
[INFO] [stdout] test core::router::tests::test_list_models_includes_catalog ... ok
[INFO] [stdout] test core::router::tests::test_is_private_or_reserved_ipv6 ... ok
[INFO] [stdout] test core::router::tests::test_normalize_model_for_provider ... ok
[INFO] [stdout] test core::router::tests::test_normalize_model_id_double_slash ... ok
[INFO] [stdout] test core::router::tests::test_normalize_model_id_empty ... ok
[INFO] [stdout] test core::router::tests::test_list_authenticated_models ... ok
[INFO] [stdout] test core::invocation::send_streaming_request_tests::test_streaming_error_400_context_window_exceeded ... ok
[INFO] [stdout] test core::router::tests::test_resolve_model_with_no_providers_returns_config_error ... ok
[INFO] [stdout] test core::router::tests::test_resolve_deepseek_with_direct_key ... ok
[INFO] [stdout] test core::router::tests::test_normalize_model_id_openrouter_prefix ... ok
[INFO] [stdout] test core::router::tests::test_provider_override ... ok
[INFO] [stdout] test core::router::tests::test_resolve_rejects_empty_base_url_for_credentialed_provider ... ok
[INFO] [stdout] test core::router::tests::test_custom_registration ... ok
[INFO] [stdout] test core::router::tests::test_unknown_provider_is_not_credentialless ... ok
[INFO] [stdout] test core::router::tests::test_resolve_rejects_unknown_model_no_permissive_fallthrough ... ok
[INFO] [stdout] test core::router::tests::test_resolve_rejects_unknown_provider_model_format ... ok
[INFO] [stdout] test core::router::tests::test_validate_base_url_no_host ... ok
[INFO] [stdout] test core::router::tests::test_validate_base_url_no_scheme ... ok
[INFO] [stdout] test core::router::tests::test_validate_base_url_empty ... ok
[INFO] [stdout] test core::router::tests::test_validate_base_url_rejects_non_http_schemes ... ok
[INFO] [stdout] test core::router::tests::test_validate_base_url_rejects_userinfo ... ok
[INFO] [stdout] test core::router::tests::test_resolve_with_normalized_name ... ok
[INFO] [stdout] test core::streaming::anthropic::tests::test_empty_data_is_noop ... ok
[INFO] [stdout] test core::router::tests::test_validate_base_url_valid ... ok
[INFO] [stdout] test core::streaming::anthropic::tests::test_error_event ... ok
[INFO] [stdout] test core::streaming::anthropic::tests::test_message_stop_ignored ... ok
[INFO] [stdout] test core::streaming::anthropic::tests::test_ping_ignored ... ok
[INFO] [stdout] test core::streaming::anthropic::tests::test_text_streaming ... ok
[INFO] [stdout] test core::streaming::anthropic::tests::test_tool_call_streaming ... ok
[INFO] [stdout] test core::invocation::send_streaming_request_tests::test_streaming_error_429_rate_limit ... ok
[INFO] [stdout] test core::streaming::anthropic::tests::test_usage_tracks_input_tokens ... ok
[INFO] [stdout] test core::streaming::gemini::tests::test_done_sentinel ... ok
[INFO] [stdout] test core::streaming::gemini::tests::test_empty_data ... ok
[INFO] [stdout] test core::streaming::gemini::tests::test_error_chunk ... ok
[INFO] [stdout] test core::streaming::gemini::tests::test_finish_reason_mapping ... ok
[INFO] [stdout] test core::streaming::gemini::tests::test_finish_with_tool_calls ... ok
[INFO] [stdout] test core::streaming::gemini::tests::test_function_call_chunk ... ok
[INFO] [stdout] test core::streaming::gemini::tests::test_text_chunk ... ok
[INFO] [stdout] test core::streaming::gemini::tests::test_thinking_chunk ... ok
[INFO] [stdout] test core::streaming::openai::tests::test_api_error ... ok
[INFO] [stdout] test core::streaming::openai::tests::test_content_chunk ... ok
[INFO] [stdout] test core::streaming::openai::tests::test_done_with_usage ... ok
[INFO] [stdout] test core::streaming::openai::tests::test_empty_delta_skipped ... ok
[INFO] [stdout] test core::streaming::openai::tests::test_multiple_content_chunks ... ok
[INFO] [stdout] test core::streaming::openai::tests::test_multiple_tool_calls ... ok
[INFO] [stdout] test core::streaming::openai::tests::test_reasoning_content_empty_skipped ... ok
[INFO] [stdout] test core::streaming::openai::tests::test_reasoning_content ... ok
[INFO] [stdout] test core::streaming::openai::tests::test_tool_call_streaming ... ok
[INFO] [stdout] test core::streaming::openai::tests::test_very_large_content_chunk ... ok
[INFO] [stdout] test core::streaming::openai::tests::test_whitespace_done ... ok
[INFO] [stdout] test core::streaming::tests::test_parse_raw_sse_data_only ... ok
[INFO] [stdout] test core::streaming::tests::test_parse_raw_sse_empty_input ... ok
[INFO] [stdout] test core::streaming::tests::test_parse_raw_sse_multiple_events ... ok
[INFO] [stdout] test core::streaming::tests::test_parse_raw_sse_multi_data ... ok
[INFO] [stdout] test core::streaming::tests::test_parse_raw_sse_no_trailing_newline ... ok
[INFO] [stdout] test core::streaming::tests::test_parse_sse_text_anthropic ... ok
[INFO] [stdout] test core::streaming::gemini::tests::test_usage_only_chunk ... ok
[INFO] [stdout] test core::streaming::tests::test_parse_sse_text_openai ... ok
[INFO] [stdout] test core::streaming::tests::test_reasoning_roundtrip ... ok
[INFO] [stdout] test core::streaming::tests::test_sse_stream_integration ... ignored, requires a running SSE HTTP server or mock EventSource
[INFO] [stdout] test core::streaming::openai::tests::test_done_sentinel ... ok
[INFO] [stdout] test core::streaming::tests::test_stream_event_roundtrip ... ok
[INFO] [stdout] test core::streaming::tests::test_token_usage_roundtrip ... ok
[INFO] [stdout] test core::tokens::tests::test_estimate_empty ... ok
[INFO] [stdout] test core::tokens::tests::test_estimate_messages_includes_tool_calls ... ok
[INFO] [stdout] test core::tokens::tests::test_estimate_short ... ok
[INFO] [stdout] test core::streaming::openai::tests::test_reasoning_with_content ... ok
[INFO] [stdout] test core::streaming::tests::test_parse_raw_sse_single ... ok
[INFO] [stdout] test core::streaming::tests::test_parse_raw_sse_with_id ... ok
[INFO] [stdout] test core::tokens::tests::test_tiktoken_fallback_non_openai ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_consecutive_tool_results_merged ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_denormalize_text_response ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_denormalize_thinking_response ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_empty_assistant_gets_placeholder ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_extra_headers_contains_anthropic_version ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_max_tokens_stop_reason ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_multiple_system_messages_merged ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_normalize_assistant_with_tool_use ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_normalize_tool_result ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_normalize_tools_uses_input_schema ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_normalize_user_message ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_system_extraction ... ok
[INFO] [stdout] test core::transport::chat_completions::tests::test_api_mode ... ok
[INFO] [stdout] test core::transport::chat_completions::tests::test_custom_base_url ... ok
[INFO] [stdout] test core::transport::chat_completions::tests::test_default_base_url ... ok
[INFO] [stdout] test core::transport::chat_completions::tests::test_denormalize_response_rejects_empty_content_no_tool_calls ... ok
[INFO] [stdout] test core::transport::chat_completions::tests::test_denormalize_response_rejects_missing_choices ... ok
[INFO] [stdout] test core::transport::chat_completions::tests::test_denormalize_simple_response ... ok
[INFO] [stdout] test core::transport::chat_completions::tests::test_denormalize_tool_call_response ... ok
[INFO] [stdout] test core::transport::chat_completions::tests::test_extra_headers_default_empty ... ok
[INFO] [stdout] test core::transport::chat_completions::tests::test_normalize_request_with_streaming ... ok
[INFO] [stdout] test core::transport::chat_completions::tests::test_normalize_request_with_tools ... ok
[INFO] [stdout] test core::transport::chat_completions::tests::test_normalize_simple_request ... ok
[INFO] [stdout] test core::transport::chat_completions::tests::test_roundtrip_simple_message ... ok
[INFO] [stdout] test core::transport::dispatcher::tests::test_anthropic_denormalize_response ... ok
[INFO] [stdout] test core::transport::dispatcher::tests::test_anthropic_normalize_request ... ok
[INFO] [stdout] test core::transport::dispatcher::tests::test_default_impl ... ok
[INFO] [stdout] test core::transport::dispatcher::tests::test_dispatch_anthropic ... ok
[INFO] [stdout] test core::transport::dispatcher::tests::test_dispatch_chat_completions ... ok
[INFO] [stdout] test core::transport::dispatcher::tests::test_dispatch_for_resolved ... ok
[INFO] [stdout] test core::transport::dispatcher::tests::test_dispatch_for_resolved_chat_completions ... ok
[INFO] [stdout] test core::transport::dispatcher::tests::test_dispatch_for_resolved_gemini ... ok
[INFO] [stdout] test core::transport::dispatcher::tests::test_dispatch_for_resolved_unregistered ... ok
[INFO] [stdout] test core::transport::dispatcher::tests::test_dispatch_gemini ... ok
[INFO] [stdout] test core::transport::dispatcher::tests::test_dispatch_unregistered_returns_none ... ok
[INFO] [stdout] test core::transport::dispatcher::tests::test_register_custom_transport ... ok
[INFO] [stdout] test core::transport::dispatcher::tests::test_register_replaces_existing ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_api_mode ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_custom_base_url ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_default_base_url ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_denormalize_empty_response ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_denormalize_function_call_response ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_denormalize_max_tokens_finish ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_denormalize_recitation_finish ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_denormalize_safety_finish ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_denormalize_stream_chunk_text ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_denormalize_stream_chunk_tool_calls_finish_reason ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_denormalize_stream_chunk_with_finish ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_denormalize_stream_chunk_with_thinking ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_denormalize_text_response ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_denormalize_thinking_part_skipped_in_content ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_finish_reason_mapping ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_default_base_url ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_normalize_function_response ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_denormalize_tool_use_response ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_normalize_model_with_function_call ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_normalize_multiple_system_messages ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_normalize_request_includes_generation_config ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_normalize_tools ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_normalize_tools_empty ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_normalize_function_response_plain_text ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_system_instruction_extraction ... ok
[INFO] [stdout] test core::transport::gemini::tests::test_normalize_user_message ... ok
[INFO] [stdout] test core::types::tests::test_function_call_roundtrip ... ok
[INFO] [stdout] test core::types::tests::test_message_simple_roundtrip ... ok
[INFO] [stdout] test core::types::tests::test_message_tool_result_roundtrip ... ok
[INFO] [stdout] test core::types::tests::test_message_with_tool_calls_roundtrip ... ok
[INFO] [stdout] test core::types::tests::test_role_roundtrip ... ok
[INFO] [stdout] test core::types::tests::test_role_serialization_variants ... ok
[INFO] [stdout] test core::types::tests::test_tool_call_roundtrip ... ok
[INFO] [stdout] test core::types::tests::test_tool_definition_roundtrip ... ok
[INFO] [stdout] test plugin::dag_runner::tests::test_find_edge_first_match_wins ... ok
[INFO] [stdout] test plugin::loader::tests::load_dir_ignores_missing_directory ... ok
[INFO] [stdout] test plugin::manifest::tests::load_manifest_from_files ... ok
[INFO] [stdout] test plugin::dag_runner::tests::test_dag_error_display ... ok
[INFO] [stdout] test plugin::manifest::tests::manifest_plugin_renders_and_parses_json ... ok
[INFO] [stdout] test plugin::orchestration::tests::evals_any_array_path ... ok
[INFO] [stdout] test plugin::orchestration::tests::evals_numeric_and_contains_conditions ... ok
[INFO] [stdout] test plugin::orchestration::tests::first_matching_rule_wins ... ok
[INFO] [stdout] test plugin::registry::tests::remove_deletes_future_lookups ... ok
[INFO] [stdout] test plugin::registry::tests::replace_all_keeps_old_registry_when_new_set_is_invalid ... ok
[INFO] [stdout] test plugin::tests::test_behavior_mode_to_behavior ... ok
[INFO] [stdout] test plugin::tests::test_default_parse_json ... ok
[INFO] [stdout] test plugin::loader::tests::load_dir_rejects_duplicate_local_plugin_names ... ok
[INFO] [stdout] test plugin::registry::tests::replace_swaps_future_lookups_without_mutating_old_arc ... ok
[INFO] [stdout] test plugin::tests::test_default_parse_markdown ... ok
[INFO] [stdout] test plugin::tests::test_plugin_config_defaults ... ok
[INFO] [stdout] test plugin::tests::test_plugin_error_display ... ok
[INFO] [stdout] test plugin::tests::test_plugin_registry_duplicate_rejected ... ok
[INFO] [stdout] test plugin::tests::test_extract_confidence ... ok
[INFO] [stdout] test plugin::tests::test_plugin_registry_register_and_get ... ok
[INFO] [stdout] test plugin::tests::test_plugin_runner_hooks_lifecycle ... ok
[INFO] [stdout] test plugin::tests::test_plugin_runner_output_too_large ... ok
[INFO] [stdout] test plugin::tests::test_plugin_runner_max_turns_exceeded ... ok
[INFO] [stdout] test plugin::tests::test_strict_behavior_retries_low_confidence ... ok
[INFO] [stdout] test plugin::tests::test_plugin_runner_memory_save ... ok
[INFO] [stdout] test plugin::tests::test_yolo_always_done ... ok
[INFO] [stdout] test plugin::tests::test_strict_escalates_after_retries ... ok
[INFO] [stdout] test plugin::watcher::tests::load_registry_bundles_handles_missing_directory ... ok
[INFO] [stdout] test core::transport::anthropic::tests::test_api_mode ... ok
[INFO] [stdout] test runtime::tests::micro_agent_uses_runtime_owned_parts ... ok
[INFO] [stdout] test runtime::tests::pipeline_uses_runtime_owned_parts ... ok
[INFO] [stdout] test plugin::watcher::tests::local_manifest_loads_bundle_name_once ... ok
[INFO] [stdout] test runtime::tests::runtime_owns_shared_registries_and_events ... ok
[INFO] [stdout] test tools::sandbox::tests::test_allowed_command_passes ... ok
[INFO] [stdout] test tools::sandbox::tests::test_allowlist_component_boundary_not_byte_prefix ... ok
[INFO] [stdout] test tools::sandbox::tests::test_ansi_c_quoting_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_check_read_allowlist_empty_allows_all ... ok
[INFO] [stdout] test tools::sandbox::tests::test_check_read_allowlist_enforced ... ok
[INFO] [stdout] test tools::sandbox::tests::test_command_matches_allowlist_token_prefix ... ok
[INFO] [stdout] test tools::sandbox::tests::test_component_matches_pattern ... ok
[INFO] [stdout] test tools::sandbox::tests::test_default_sandbox_disallows_cargo_commands ... ok
[INFO] [stdout] test tools::sandbox::tests::test_default_sandbox_has_no_hook_chain ... ok
[INFO] [stdout] test tools::sandbox::tests::test_disallowed_program_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_dns_rebinding_domains_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_empty_command_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_hook_chain_allows_safe_command_in_restricted_sandbox ... ok
[INFO] [stdout] test tools::sandbox::tests::test_hook_chain_allows_safe_command_through_to_allowlist ... ok
[INFO] [stdout] test tools::sandbox::tests::security_pipeline_hook_chain_order_matters ... ok
[INFO] [stdout] test tools::sandbox::tests::test_hook_chain_blocks_rm_rf_root_before_allowlist ... ok
[INFO] [stdout] test tools::sandbox::tests::test_hook_chain_blocks_curl_pipe_sh_before_metachar ... ok
[INFO] [stdout] test tools::sandbox::tests::test_is_path_prefix_component_boundary ... ok
[INFO] [stdout] test tools::sandbox::tests::test_is_private_ip ... ok
[INFO] [stdout] test tools::sandbox::tests::test_path_env_override_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_path_matches_sensitive ... ok
[INFO] [stdout] test tools::sandbox::tests::test_legitimate_commands_with_multiple_args ... ok
[INFO] [stdout] test tools::sandbox::tests::test_path_matches_sensitive_wildcards ... ok
[INFO] [stdout] test tools::sandbox::tests::test_permissive_mode_allows_any_program ... ok
[INFO] [stdout] test tools::sandbox::tests::test_permissive_mode_rejects_newline_injection ... ok
[INFO] [stdout] test tools::sandbox::tests::test_permissive_mode_still_rejects_metachars ... ok
[INFO] [stdout] test tools::sandbox::tests::test_sandbox_config_has_max_http_response_size ... ok
[INFO] [stdout] test tools::sandbox::tests::test_prefix_match_injection_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_shell_injection_via_ampersand_permissive_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_shell_injection_via_ampersand_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_shell_injection_via_andand_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_shell_injection_via_backtick_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_shell_injection_via_carriage_return_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_shell_injection_via_newline_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_shell_injection_via_oror_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_shell_injection_via_pipe_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_shell_injection_via_semicolon_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_shell_injection_via_subshell_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_url_http_localhost_allowed ... ok
[INFO] [stdout] test tools::sandbox::tests::test_url_http_remote_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_url_https_allowed ... ok
[INFO] [stdout] test tools::sandbox::tests::test_url_https_private_ip_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_url_invalid_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::test_url_localhost_prefix_wildcard_rejected ... ok
[INFO] [stdout] test tools::sandbox::tests::sandbox_config_audit_logs_hook_denials ... ok
[INFO] [stdout] test core::invocation::send_streaming_request_tests::test_streaming_error_500_provider_unavailable ... ok
[INFO] [stdout] test core::invocation::send_streaming_request_tests::test_streaming_error_503_provider_unavailable ... ok
[INFO] [stdout] test tools::sandbox::tests::yolo_mode_enforces_command_allowlist ... ok
[INFO] [stdout] test tools::tool_registry::tests::test_merge_plugin_overrides ... ok
[INFO] [stdout] test tools::tool_registry::tests::test_merge_tool_definitions ... ok
[INFO] [stdout] test tools::sandbox::tests::test_vet_hook_intercepts_curl_https ... ok
[INFO] [stdout] test tools::sandbox::tests::test_vet_hook_passthrough_non_curl ... ok
[INFO] [stdout] test tools::sandbox::tests::test_vet_hook_blocks_curl_http ... ok
[INFO] [stdout] test tools::sandbox::tests::test_vet_hook_neutralizes_curl_pipe_sh ... ok
[INFO] [stdout] test tools::sandbox::tests::security_pipeline_vet_intercepts_curl_download ... ok
[INFO] [stdout] test core::tokens::tests::test_tiktoken_openai_model ... ok
[INFO] [stdout] test core::tokens::tests::test_fits_in_context ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 469 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 3.69s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/agent_mock.rs (/opt/rustwide/target/debug/deps/agent_mock-5b68537b229121a3)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test test_agent_send_message_async_basic ... ok
[INFO] [stdout] test test_agent_send_message_basic ... ok
[INFO] [stdout] test test_agent_run_basic ... ok
[INFO] [stdout] test test_agent_run_streaming_observer_receives_tokens ... ok
[INFO] [stdout] test test_agent_run_with_tool_call_no_executor ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/context_e2e.rs (/opt/rustwide/target/debug/deps/context_e2e-55e8786b11a4f07c)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e.rs (/opt/rustwide/target/debug/deps/e2e-6c9aef981c7045fe)
[INFO] [stdout] 
[INFO] [stdout] running 175 tests
[INFO] [stdout] test credential_resolution_characterization::bug_ollama_not_selected_when_anthropic_has_creds ... ok
[INFO] [stdout] test credential_resolution_characterization::copilot_uses_github_token_not_api_key ... ok
[INFO] [stdout] test credential_resolution_characterization::all_19_credentialed_providers_have_env_var_mapping ... ok
[INFO] [stdout] test credential_resolution_characterization::credentialless_provider_ollama_resolves_with_none_api_key ... ok
[INFO] [stdout] test credential_resolution_characterization::fallback_errors_when_no_credentials_available ... ok
[INFO] [stdout] test credential_resolution_characterization::fallback_returns_config_error_when_no_credentials ... ok
[INFO] [stdout] test credential_resolution_characterization::each_env_var_maps_to_at_most_one_primary_provider ... ok
[INFO] [stdout] test credential_resolution_characterization::normalize_does_not_affect_non_claude_dots ... ok
[INFO] [stdout] test credential_resolution_characterization::normalize_claude_dots_to_hyphens ... ok
[INFO] [stdout] test credential_resolution_characterization::normalize_double_slash_strips_all_prefixes ... ok
[INFO] [stdout] test credential_resolution_characterization::normalize_empty_string ... ok
[INFO] [stdout] test credential_resolution_characterization::normalize_noop_for_plain_ids ... ok
[INFO] [stdout] test credential_resolution_characterization::normalize_strips_openrouter_vendor_prefix ... ok
[INFO] [stdout] test credential_resolution_characterization::normalize_lowercase ... ok
[INFO] [stdout] test credential_resolution_characterization::ollama_is_credentialless ... ok
[INFO] [stdout] test credential_resolution_characterization::normalize_strips_suffix ... ok
[INFO] [stdout] test credential_resolution_characterization::inspect_model_used_for_unknown_provider_model_format ... ok
[INFO] [stdout] test credential_resolution_characterization::openai_codex_shares_openai_key ... ok
[INFO] [stdout] test credential_resolution_characterization::normalize_strips_prefix ... ok
[INFO] [stdout] test credential_resolution_characterization::permissive_deepseek_provider ... ok
[INFO] [stdout] test credential_resolution_characterization::permissive_looks_up_provider_defaults ... ok
[INFO] [stdout] test credential_resolution_characterization::permissive_fails_without_slash ... ok
[INFO] [stdout] test credential_resolution_characterization::permissive_fails_for_unknown_provider ... ok
[INFO] [stdout] test credential_resolution_characterization::permissive_openrouter_not_in_defaults ... ok
[INFO] [stdout] test credential_resolution_characterization::permissive_provider_model_becomes_canonical_id ... ok
[INFO] [stdout] test credential_resolution_characterization::permissive_resolves_credentials_from_defaults ... ok
[INFO] [stdout] test credential_resolution_characterization::permissive_returns_none_api_key_without_env_var ... ok
[INFO] [stdout] test credential_resolution_characterization::priority_loop_bug_ollama_skipped_despite_highest_priority ... ok
[INFO] [stdout] test credential_resolution_characterization::permissive_splits_provider_model_format ... ok
[INFO] [stdout] test credential_resolution_characterization::permissive_uses_default_context_length ... ok
[INFO] [stdout] test credential_resolution_characterization::provider_credentials_all_provider_slugs ... ok
[INFO] [stdout] test credential_resolution_characterization::provider_credentials_env_var_mapping ... ok
[INFO] [stdout] test credential_resolution_characterization::provider_credentials_has_20_entries ... ok
[INFO] [stdout] test credential_resolution_characterization::priority_loop_selects_first_provider_with_credential ... ok
[INFO] [stdout] test credential_resolution_characterization::priority_loop_skips_providers_without_credentials ... ok
[INFO] [stdout] test credential_resolution_characterization::resolve_credentials_returns_none_for_credentialless_provider ... ok
[INFO] [stdout] test credential_resolution_characterization::resolve_provider_override_nonexistent_returns_error ... ok
[INFO] [stdout] test credential_resolution_characterization::resolve_unknown_provider_model_returns_error ... ok
[INFO] [stdout] test credential_resolution_characterization::resolve_credentials_prefers_entry_credential_keys_over_fallback ... ok
[INFO] [stdout] test credential_resolution_characterization::resolve_credentials_finds_env_var_for_provider ... ok
[INFO] [stdout] test credential_resolution_characterization::resolve_credentials_ignores_empty_env_var_values ... ok
[INFO] [stdout] test error_classification_characterization::errors_classify_400_context_window_exceeded ... ok
[INFO] [stdout] test error_classification_characterization::errors_classify_401_authentication ... ok
[INFO] [stdout] test credential_resolution_characterization::resolve_unnormalized_input_gets_normalized ... ok
[INFO] [stdout] test error_classification_characterization::errors_classify_403_authentication ... ok
[INFO] [stdout] test credential_resolution_characterization::resolve_with_provider_override_skips_priority_loop ... ok
[INFO] [stdout] test error_classification_characterization::errors_classify_404_model_from_body ... ok
[INFO] [stdout] test error_classification_characterization::errors_classify_404_no_model_in_body ... ok
[INFO] [stdout] test error_classification_characterization::errors_classify_429_no_retry_after_in_body ... ok
[INFO] [stdout] test error_classification_characterization::errors_classify_429_rate_limit ... ok
[INFO] [stdout] test error_classification_characterization::errors_classify_502_provider_unavailable ... ok
[INFO] [stdout] test error_classification_characterization::errors_classify_503_provider_unavailable ... ok
[INFO] [stdout] test error_classification_characterization::errors_classify_400_no_context_overflow_is_network ... ok
[INFO] [stdout] test error_classification_characterization::errors_classify_status_0_is_network ... ok
[INFO] [stdout] test error_classification_characterization::errors_classify_other_status_is_network ... ok
[INFO] [stdout] test error_classification_characterization::errors_classify_500_provider_unavailable ... ok
[INFO] [stdout] test error_classification_characterization::is_retryable_authentication_no ... ok
[INFO] [stdout] test error_classification_characterization::is_retryable_config_no ... ok
[INFO] [stdout] test error_classification_characterization::is_retryable_context_window_exceeded_no ... ok
[INFO] [stdout] test error_classification_characterization::is_retryable_model_not_found_no ... ok
[INFO] [stdout] test error_classification_characterization::is_retryable_network_no ... ok
[INFO] [stdout] test error_classification_characterization::is_retryable_rate_limit_yes ... ok
[INFO] [stdout] test error_classification_characterization::is_retryable_streaming_no ... ok
[INFO] [stdout] test error_classification_characterization::is_retryable_tool_execution_no ... ok
[INFO] [stdout] test error_classification_characterization::is_retryable_provider_unavailable_yes ... ok
[INFO] [stdout] test error_classification_characterization::model_from_body_case_insensitive_key ... ok
[INFO] [stdout] test error_classification_characterization::model_from_body_hyphenated_name ... ok
[INFO] [stdout] test error_classification_characterization::model_from_body_null_model ... ok
[INFO] [stdout] test error_classification_characterization::model_from_body_standard_json ... ok
[INFO] [stdout] test error_classification_characterization::model_from_body_no_model_key ... ok
[INFO] [stdout] test error_classification_characterization::model_from_body_whitespace_truncation_bug ... ok
[INFO] [stdout] test error_classification_characterization::retry_after_hyphenated_key ... ok
[INFO] [stdout] test error_classification_characterization::retry_after_not_present ... ok
[INFO] [stdout] test error_classification_characterization::retry_after_numeric_integer ... ok
[INFO] [stdout] test error_classification_characterization::retry_after_string_encoded_number_bug ... ok
[INFO] [stdout] test error_classification_characterization::retry_after_numeric_float ... ok
[INFO] [stdout] test error_classification_characterization::retry_after_unquoted_key ... ok
[INFO] [stdout] test error_classification_characterization::status_code_matrix ... ok
[INFO] [stdout] test regression_wave1::regress_debug_api_key_masked ... ok
[INFO] [stdout] test regression_wave1::regress_deprecated_consolidation_provider_compile ... ok
[INFO] [stdout] test regression_wave1::regress_debug_api_key_none ... ok
[INFO] [stdout] test regression_wave1::regress_deprecated_consolidation_types_compile ... ok
[INFO] [stdout] test regression_wave1::regress_engine_mock_provider_auth_error_typed ... ok
[INFO] [stdout] test regression_wave1::regress_error_classifier_is_retryable ... ok
[INFO] [stdout] test regression_wave1::regress_error_classifier_status_zero_network ... ok
[INFO] [stdout] test regression_wave1::regress_engine_mock_provider_metadata_correct ... ok
[INFO] [stdout] test regression_wave1::regress_error_classifier_unified_classify ... ok
[INFO] [stdout] test regression_wave1::regress_engine_mock_provider_multi_provider ... ok
[INFO] [stdout] test regression_wave1::regress_lazylock_normalize_model_id_case_insensitive ... ok
[INFO] [stdout] test regression_wave1::regress_lazylock_normalize_model_id_edge_cases ... ok
[INFO] [stdout] test regression_wave1::regress_provider_config_resolved_model_roundtrip ... ok
[INFO] [stdout] test regression_wave1::regress_engine_mock_provider_resolves_correctly ... ok
[INFO] [stdout] test regression_wave1::regress_lazylock_normalize_model_id_correctness ... ok
[INFO] [stdout] test regression_wave1::regress_missing_credential_errors ... ok
[INFO] [stdout] test regression_wave1::regress_saturating_pow_attempt_zero ... ok
[INFO] [stdout] test regression_wave1::regress_saturating_pow_clamped_to_max ... ok
[INFO] [stdout] test regression_wave1::regress_rig_core_model_resolution_works ... ok
[INFO] [stdout] test regression_wave1::regress_rig_core_aliases_intact ... ok
[INFO] [stdout] test regression_wave1::regress_transport_type_api_protocol_works ... ok
[INFO] [stdout] test regression_wave4_5::anthropic_sse_error_event_no_message_field ... ok
[INFO] [stdout] test regression_wave4_5::anthropic_sse_error_event_no_type_or_message ... ok
[INFO] [stdout] test regression_wave4_5::anthropic_sse_error_event_surfaced ... ok
[INFO] [stdout] test regression_wave4_5::anthropic_sse_message_stop_ignored ... ok
[INFO] [stdout] test regression_wave4_5::anthropic_sse_ping_event_ignored ... ok
[INFO] [stdout] test regression_wave4_5::anthropic_sse_unknown_event_type_ignored ... ok
[INFO] [stdout] test regression_wave4_5::catalog_claude_sonnet_entry_exists ... ok
[INFO] [stdout] test regression_wave4_5::catalog_loads_successfully_with_embedded_data ... ok
[INFO] [stdout] test regression_wave1::regress_saturating_pow_no_panic_on_high_attempt ... ok
[INFO] [stdout] test regression_wave1::regress_saturating_pow_normal_backoff_increases ... ok
[INFO] [stdout] test regression_wave4_5::catalog_resolve_alias_sonnet_works ... ok
[INFO] [stdout] test regression_wave4_5::chat_request_model_equals_resolved_api_model_id ... ok
[INFO] [stdout] test regression_wave1::regress_transport_type_all_variants_serialize ... ok
[INFO] [stdout] test regression_wave4_5::chat_request_model_is_distinct_from_canonical_id ... ok
[INFO] [stdout] test regression_wave4_5::chat_request_preserves_resolved_model_fields ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_404_extracts_model_from_body ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_404_no_model_in_body_falls_back ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_429_extracts_retry_after_float ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_429_extracts_retry_after_hyphenated_key ... ok
[INFO] [stdout] test regression_wave4_5::error_body_not_truncated_for_small_body ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_429_no_retry_after_returns_none ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_429_retry_after_from_non_json_body ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_is_not_retryable_for_other_errors ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_is_retryable_provider_unavailable ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_is_retryable_rate_limit ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_status_0_is_network ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_status_400_context_window_exceeded ... ok
[INFO] [stdout] test regression_wave4_5::error_body_truncated_for_network_error ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_status_400_without_context_overflow_is_network ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_status_401_authentication ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_status_403_authentication ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_status_404_model_not_found ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_status_408_is_retryable ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_status_429_rate_limit ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_status_500_provider_unavailable ... ok
[INFO] [stdout] test regression_wave4_5::error_body_truncated_for_provider_unavailable ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_status_502_provider_unavailable ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_unhandled_status_is_network ... ok
[INFO] [stdout] test regression_wave4_5::inspect_model_rejects_unknown_provider ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_status_503_provider_unavailable ... ok
[INFO] [stdout] test regression_wave4_5::inspect_model_openai_codex_uses_callable_protocol ... ok
[INFO] [stdout] test regression_wave4_5::inspect_model_uses_provider_defaults_for_base_url ... ok
[INFO] [stdout] test regression_wave4_5::inspect_model_uses_provider_defaults_for_gemini ... ok
[INFO] [stdout] test regression_wave4_5::inspect_model_works_with_mixed_case_provider ... ok
[INFO] [stdout] test regression_wave4_5::inspect_model_works_with_lowercase_provider ... ok
[INFO] [stdout] test regression_wave4_5::error_classify_429_extracts_retry_after_numeric ... ok
[INFO] [stdout] test regression_wave4_5::normalize_model_id_claude_dots_to_hyphens ... ok
[INFO] [stdout] test regression_wave4_5::inspect_model_works_with_uppercase_provider ... ok
[INFO] [stdout] test regression_wave4_5::normalize_model_id_strips_openrouter_prefix ... ok
[INFO] [stdout] test regression_wave4_5::normalize_model_id_lowercases ... ok
[INFO] [stdout] test regression_wave4_5::normalize_model_id_noop_for_non_claude ... ok
[INFO] [stdout] test regression_wave4_5::openai_sse_delta_requires_prior_tool_call_start ... ok
[INFO] [stdout] test regression_wave4_5::openai_sse_multiple_tool_calls_tracked_correctly ... ok
[INFO] [stdout] test regression_wave4_5::openai_sse_tool_call_start_then_delta_works ... ok
[INFO] [stdout] test regression_wave4_5::tool_definition_parameters_must_be_object ... ok
[INFO] [stdout] test regression_wave4_5::validate_base_url_custom_scheme_rejected ... ok
[INFO] [stdout] test regression_wave4_5::validate_base_url_empty_ok ... ok
[INFO] [stdout] test regression_wave4_5::router_resolve_uses_correct_provider_details ... ok
[INFO] [stdout] test regression_wave4_5::router_inspect_model_gives_api_model_id_not_canonical_id ... ok
[INFO] [stdout] test regression_wave4_5::tool_definition_serialization_roundtrip ... ok
[INFO] [stdout] test regression_wave4_5::validate_base_url_https_ok ... ok
[INFO] [stdout] test regression_wave4_5::validate_base_url_no_host_rejected ... ok
[INFO] [stdout] test regression_wave4_5::validate_base_url_no_scheme_rejected ... ok
[INFO] [stdout] test regression_wave4_5::validate_base_url_localhost_ok ... ok
[INFO] [stdout] test unknown_model::test_permissive_fallback_deepseek_model ... ok
[INFO] [stdout] test unknown_model::test_inspect_model_gemini_model ... ok
[INFO] [stdout] test unknown_model::test_inspect_model_provider_model_format ... ok
[INFO] [stdout] test unknown_model::test_unknown_model_no_provider_prefix_fails ... ok
[INFO] [stdout] test unknown_model::test_permissive_resolved_model_fields ... ok
[INFO] [stdout] test unknown_model::test_permissive_fallback_openai_model ... ok
[INFO] [stdout] test unknown_model::test_unknown_provider_prefix_fails ... ok
[INFO] [stdout] test unknown_model::test_permissive_resolved_model_usable_in_chat_request ... ok
[INFO] [stdout] test chat_mock::test_chat_with_tool_call_streaming ... ok
[INFO] [stdout] test chat_mock::test_chat_basic_streaming ... ok
[INFO] [stdout] test chat_mock::test_chat_http_error_classification ... ok
[INFO] [stdout] test chat_mock::test_chat_empty_stream_yields_no_tokens ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 175 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/transport_dispatcher_characterization.rs (/opt/rustwide/target/debug/deps/transport_dispatcher_characterization-e7ea4d082ce56364)
[INFO] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test anthropic_dispatch_adapter::normalize_request_temperature_handling ... ok
[INFO] [stdout] test anthropic_dispatch_adapter::normalize_request_defaults_max_tokens_to_4096 ... ok
[INFO] [stdout] test anthropic_dispatch_adapter::denormalize_response_stop_reason_mapping ... ok
[INFO] [stdout] test anthropic_dispatch_adapter::normalize_request_extracts_system_to_top_level ... ok
[INFO] [stdout] test anthropic_dispatch_adapter::denormalize_response_text_content ... ok
[INFO] [stdout] test chat_completions_via_dispatcher::normalize_preserves_all_message_roles ... ok
[INFO] [stdout] test anthropic_dispatch_adapter::denormalize_response_tool_use ... ok
[INFO] [stdout] test anthropic_dispatch_adapter::normalize_request_then_denormalize_response_roundtrip ... ok
[INFO] [stdout] test dispatch_for_resolved::custom_protocol_resolved_model_returns_none ... ok
[INFO] [stdout] test dispatch_for_resolved::codex_responses_resolved_model_returns_none ... ok
[INFO] [stdout] test dispatch_routing::anthropic_messages_returns_anthropic_dispatch_transport ... ok
[INFO] [stdout] test chat_completions_via_dispatcher::denormalize_text_response_with_usage_and_model ... ok
[INFO] [stdout] test dispatch_routing::gemini_returns_gemini_transport ... ok
[INFO] [stdout] test chat_completions_via_dispatcher::roundtrip_normalize_then_denormalize ... ok
[INFO] [stdout] test dispatch_for_resolved::gemini_resolved_model ... ok
[INFO] [stdout] test dispatch_routing::openai_chat_returns_chat_completions_transport ... ok
[INFO] [stdout] test dispatcher_construction::default_same_as_new ... ok
[INFO] [stdout] test dispatcher_construction::new_registers_three_protocols ... ok
[INFO] [stdout] test dispatcher_construction::register_adds_and_replaces ... ok
[INFO] [stdout] test gemini_via_dispatcher::denormalize_text_response_with_usage ... ok
[INFO] [stdout] test gemini_via_dispatcher::finish_reason_mapping ... ok
[INFO] [stdout] test gemini_via_dispatcher::normalize_extracts_system_and_maps_roles ... ok
[INFO] [stdout] test gemini_via_dispatcher::roundtrip_with_tools ... ok
[INFO] [stdout] test unregistered_protocols::codex_responses_not_registered ... ok
[INFO] [stdout] test unregistered_protocols::custom_protocol_not_registered ... ok
[INFO] [stdout] test dispatch_for_resolved::anthropic_messages_resolved_model ... ok
[INFO] [stdout] test dispatch_for_resolved::openai_chat_resolved_model ... ok
[INFO] [stdout] test anthropic_dispatch_adapter::normalize_request_normalizes_tools_with_input_schema ... ok
[INFO] [stdout] test anthropic_dispatch_adapter::normalize_request_stream_flag ... ok
[INFO] [stderr]      Running tests/transport_integration.rs (/opt/rustwide/target/debug/deps/transport_integration-5c60a194ad172efa)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 36 tests
[INFO] [stdout] test anthropic::denormalize_stream_chunk_returns_empty_vec ... ok
[INFO] [stdout] test anthropic::normalize_messages_with_tool_result ... ok
[INFO] [stdout] test anthropic::normalize_messages_with_tool_use_content_blocks ... ok
[INFO] [stdout] test anthropic::normalize_tools_uses_input_schema ... ok
[INFO] [stdout] test anthropic::normalize_messages_with_system_extraction ... ok
[INFO] [stdout] test anthropic::denormalize_response_text_content ... ok
[INFO] [stdout] test anthropic::full_pipeline_anthropic_roundtrip ... ok
[INFO] [stdout] test anthropic::denormalize_response_tool_use_content ... ok
[INFO] [stdout] test cross_transport::all_format_transports_normalize_without_error ... ok
[INFO] [stdout] test cross_transport::all_transports_denormalize_tool_call_response ... ok
[INFO] [stdout] test cross_transport::same_user_message_across_all_transports ... ok
[INFO] [stdout] test dispatcher::dispatch_unregistered_protocol_returns_none ... ok
[INFO] [stdout] test dispatcher::dispatch_protocol_returns_correct_transport ... ok
[INFO] [stdout] test dispatcher::dispatch_for_resolved_returns_correct_transport ... ok
[INFO] [stdout] test cross_transport::all_transports_denormalize_text_response ... ok
[INFO] [stdout] test gemini::denormalize_stream_chunk_with_finish_and_usage ... ok
[INFO] [stdout] test dispatcher::dispatcher_gemini_normalize_denormalize ... ok
[INFO] [stdout] test dispatcher::register_custom_transport_and_dispatch ... ok
[INFO] [stdout] test dispatcher::dispatcher_anthropic_normalize_denormalize ... ok
[INFO] [stdout] test gemini::denormalize_response_function_call_candidate ... ok
[INFO] [stdout] test gemini::denormalize_stream_chunk_text ... ok
[INFO] [stdout] test dispatcher::dispatcher_chat_completions_normalize_denormalize ... ok
[INFO] [stdout] test gemini::denormalize_response_text_candidate ... ok
[INFO] [stdout] test gemini::normalize_messages_with_function_call_parts ... ok
[INFO] [stdout] test gemini::normalize_messages_with_function_response_parts ... ok
[INFO] [stdout] test gemini::full_pipeline_gemini_roundtrip ... ok
[INFO] [stdout] test gemini::normalize_messages_with_system_instruction_extraction ... ok
[INFO] [stdout] test gemini::normalize_tools_gemini_format ... ok
[INFO] [stderr]    Doc-tests lattice
[INFO] [stdout] test openai_chat_completions::denormalize_stream_chunk_content_delta ... ok
[INFO] [stdout] test openai_chat_completions::denormalize_stream_chunk_done ... ok
[INFO] [stdout] test openai_chat_completions::denormalize_response_content_only ... ok
[INFO] [stdout] test openai_chat_completions::full_pipeline_roundtrip ... ok
[INFO] [stdout] test openai_chat_completions::denormalize_stream_chunk_tool_call_delta ... ok
[INFO] [stdout] test openai_chat_completions::denormalize_response_tool_calls ... ok
[INFO] [stdout] test openai_chat_completions::normalize_tools_with_function_definitions ... ok
[INFO] [stdout] test openai_chat_completions::normalize_messages_with_all_roles ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test lattice/src/agent/mod.rs - agent::Agent (line 95) ... ignored
[INFO] [stdout] test lattice/src/core/transport/dispatcher.rs - core::transport::dispatcher::create_transport (line 38) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "08692554c546cf5ce0be07edba7a24ba4476e74290856f9baf7a9b5decb9b6d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "08692554c546cf5ce0be07edba7a24ba4476e74290856f9baf7a9b5decb9b6d5", kill_on_drop: false }`
[INFO] [stdout] 08692554c546cf5ce0be07edba7a24ba4476e74290856f9baf7a9b5decb9b6d5
